/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wasolicitudesfiec.consultas.apertura;

import entidad.apertura.Solicitudaperturapostgrado;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Vector;

/**
 *
 * @author kabad
 */
public class ConsultasSolicitudaperturapostgrado {

    private Connection con;

    public Solicitudaperturapostgrado HLnuevoSolicitudaperturapostgrado(Solicitudaperturapostgrado val) throws SQLException {
        return nuevoSolicitudaperturapostgrado(val.getEstado(), val.getFechacreacion(), val.getFechamodificacion(), val.getFkIdDecano(), 
                val.getFkIdEvaluador1(), val.getFkIdEvaluador2(), val.getFkIdEvaluador3(), val.getFkIdProfesor(), val.getFkParent(),
                val.getInforme1(), val.getInforme2(), val.getInforme3(), val.getNombreArchivo(), val.getNombreinstanciaproceso(),
                val.getObservacionDecano(), val.getObservacionEvaluador1(), val.getObservacionEvaluador2(), val.getObservacionEvaluador3(),
                val.getObservacionProfesor(), val.getPathArchivoAdjunto(), val.getResolucion(), val.getTema(), val.getTipo(),
                val.getResultadoResolucion(), val.getComentarioResolucion(), val.getResultadoEvaluacion(), val.getFkIdSecretaria());
    }

    public Solicitudaperturapostgrado leerSolicitudaperturapostgrado(int idSolicitudApertura) throws SQLException {
        Solicitudaperturapostgrado reg = new Solicitudaperturapostgrado();

        PreparedStatement proc = con.prepareStatement(
                "call leerSolicitudaperturapostgrado(?) ");
        proc.setInt(1, idSolicitudApertura);
        ResultSet rs = proc.executeQuery();
        if (rs.next()) {
            reg.setEstado(rs.getString(1));
            reg.setFechacreacion(rs.getTimestamp(2));
            reg.setFechamodificacion(rs.getTimestamp(3));
            reg.setFkIdDecano(rs.getInt(4));
            reg.setFkIdEvaluador1(rs.getInt(5));
            reg.setFkIdEvaluador2(rs.getInt(6));
            reg.setFkIdEvaluador3(rs.getInt(7));
            reg.setFkIdProfesor(rs.getInt(8));
            reg.setFkParent(rs.getInt(9));
            reg.setIdSolicitudApertura(rs.getInt(10));
            reg.setInforme1(rs.getString(11));
            reg.setInforme2(rs.getString(12));
            reg.setInforme3(rs.getString(13));
            reg.setNombreArchivo(rs.getString(14));
            reg.setNombreinstanciaproceso(rs.getString(15));
            reg.setObservacionDecano(rs.getString(16));
            reg.setObservacionEvaluador1(rs.getString(17));
            reg.setObservacionEvaluador2(rs.getString(18));
            reg.setObservacionEvaluador3(rs.getString(19));
            reg.setObservacionProfesor(rs.getString(20));
            reg.setPathArchivoAdjunto(rs.getString(21));
            reg.setResolucion(rs.getString(22));
            reg.setTema(rs.getString(23));
            reg.setTipo(rs.getString(24));
            reg.setResultadoResolucion(rs.getString(25));
            reg.setComentarioResolucion(rs.getString(26));
            reg.setResultadoEvaluacion(rs.getString(27));
            reg.setFkIdSecretaria(rs.getInt(28));
        } else {
            reg = null;
        }
        return reg;


    }

    public Solicitudaperturapostgrado nuevoSolicitudaperturapostgrado(String estado, Timestamp fechacreacion, Timestamp fechamodificcion,
            int fkIdDecano, int fkIdEvaluador1, int fkIdEvaluador2, int fkIdEvaluador3, int fkIdProfesor, int fkParent, String informe1,
            String informe2, String informe3, String nombreArchivo, String nombreinstanciaproceso, String observacionDecano,
            String observacionEvaluador1, String observacionEvaluador2, String observacionEvaluador3, String observacionProfesor,
            String pathArchivoAdjunto, String resolucion, String tema, String tipo, String resultadoResolucion, 
            String comentarioResolucion, String resultadoEvaluacion, int fkIdSecretaria) throws SQLException {
        Solicitudaperturapostgrado reg = new Solicitudaperturapostgrado();

        PreparedStatement proc = con.prepareStatement(
                "call nuevoSolicitudaperturapostgrado(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ");
        proc.setString(1, estado);
        proc.setTimestamp(2, fechacreacion);
        proc.setTimestamp(3, fechamodificcion);
        proc.setInt(4, fkIdDecano);
        proc.setInt(5, fkIdEvaluador1);
        proc.setInt(6, fkIdEvaluador2);
        proc.setInt(7, fkIdEvaluador3);
        proc.setInt(8, fkIdProfesor);
        proc.setInt(9, fkParent);
        proc.setString(10, informe1);
        proc.setString(11, informe2);
        proc.setString(12, informe3);
        proc.setString(13, nombreArchivo);
        proc.setString(14, nombreinstanciaproceso);
        proc.setString(15, observacionDecano);
        proc.setString(16, observacionEvaluador1);
        proc.setString(17, observacionEvaluador2);
        proc.setString(18, observacionEvaluador3);
        proc.setString(19, observacionProfesor);
        proc.setString(20, pathArchivoAdjunto);
        proc.setString(21, resolucion);
        proc.setString(22, tema);
        proc.setString(23, tipo);
        proc.setString(24, resultadoResolucion);
        proc.setString(25, comentarioResolucion);
        proc.setString(26, resultadoEvaluacion);
        proc.setInt(27, fkIdSecretaria);
        ResultSet rs = proc.executeQuery();
        if (rs.next()) {
            reg.setEstado(rs.getString(1));
            reg.setFechacreacion(rs.getTimestamp(2));
            reg.setFechamodificacion(rs.getTimestamp(3));
            reg.setFkIdDecano(rs.getInt(4));
            reg.setFkIdEvaluador1(rs.getInt(5));
            reg.setFkIdEvaluador2(rs.getInt(6));
            reg.setFkIdEvaluador3(rs.getInt(7));
            reg.setFkIdProfesor(rs.getInt(8));
            reg.setFkParent(rs.getInt(9));
            reg.setIdSolicitudApertura(rs.getInt(10));
            reg.setInforme1(rs.getString(11));
            reg.setInforme2(rs.getString(12));
            reg.setInforme3(rs.getString(13));
            reg.setNombreArchivo(rs.getString(14));
            reg.setNombreinstanciaproceso(rs.getString(15));
            reg.setObservacionDecano(rs.getString(16));
            reg.setObservacionEvaluador1(rs.getString(17));
            reg.setObservacionEvaluador2(rs.getString(18));
            reg.setObservacionEvaluador3(rs.getString(19));
            reg.setObservacionProfesor(rs.getString(20));
            reg.setPathArchivoAdjunto(rs.getString(21));
            reg.setResolucion(rs.getString(22));
            reg.setTema(rs.getString(23));
            reg.setTipo(rs.getString(24));
            reg.setResultadoResolucion(rs.getString(25));
            reg.setComentarioResolucion(rs.getString(26));
             reg.setResultadoEvaluacion(rs.getString(27));
             reg.setFkIdSecretaria(rs.getInt(28));
        } else {
            reg = null;
        }
        return reg;


    }

    public Solicitudaperturapostgrado HLleerSolicitudaperturapostgrado(Solicitudaperturapostgrado val) throws SQLException {
        return leerSolicitudaperturapostgrado(val.getIdSolicitudApertura());
    }

    public Vector<Solicitudaperturapostgrado> leerVariosSolicitudaperturapostgrado() throws SQLException {
        Vector<Solicitudaperturapostgrado> datos = new Vector<Solicitudaperturapostgrado>();
        Solicitudaperturapostgrado reg;

        PreparedStatement proc = con.prepareStatement(
                "call leerVariosSolicitudaperturapostgrado() ");
        ResultSet rs = proc.executeQuery();
        while (rs.next()) {
            reg = new Solicitudaperturapostgrado();
            reg.setEstado(rs.getString(1));
            reg.setFechacreacion(rs.getTimestamp(2));
            reg.setFechamodificacion(rs.getTimestamp(3));
            reg.setFkIdDecano(rs.getInt(4));
            reg.setFkIdEvaluador1(rs.getInt(5));
            reg.setFkIdEvaluador2(rs.getInt(6));
            reg.setFkIdEvaluador3(rs.getInt(7));
            reg.setFkIdProfesor(rs.getInt(8));
            reg.setFkParent(rs.getInt(9));
            reg.setIdSolicitudApertura(rs.getInt(10));
            reg.setInforme1(rs.getString(11));
            reg.setInforme2(rs.getString(12));
            reg.setInforme3(rs.getString(13));
            reg.setNombreArchivo(rs.getString(14));
            reg.setNombreinstanciaproceso(rs.getString(15));
            reg.setObservacionDecano(rs.getString(16));
            reg.setObservacionEvaluador1(rs.getString(17));
            reg.setObservacionEvaluador2(rs.getString(18));
            reg.setObservacionEvaluador3(rs.getString(19));
            reg.setObservacionProfesor(rs.getString(20));
            reg.setPathArchivoAdjunto(rs.getString(21));
            reg.setResolucion(rs.getString(22));
            reg.setTema(rs.getString(23));
            reg.setTipo(rs.getString(24));
            reg.setResultadoResolucion(rs.getString(25));
            reg.setComentarioResolucion(rs.getString(26));
            reg.setResultadoEvaluacion(rs.getString(27));
            reg.setFkIdSecretaria(rs.getInt(28));
            datos.add(reg);
        }//end while

        return datos;
    }

    public Vector<Solicitudaperturapostgrado> HLleerVariosSolicitudaperturapostgrado(Solicitudaperturapostgrado val) throws SQLException {
        return leerVariosSolicitudaperturapostgrado();
    }

    public boolean HLmodificarSolicitudaperturapostgrado(Solicitudaperturapostgrado val) throws SQLException {
        return modificarSolicitudaperturapostgrado(val.getEstado(), val.getFechacreacion(), val.getFechamodificacion(), val.getFkIdDecano(), 
                val.getFkIdEvaluador1(), val.getFkIdEvaluador2(), val.getFkIdEvaluador3(), val.getFkIdProfesor(), val.getFkParent(),
                val.getIdSolicitudApertura(), val.getInforme1(), val.getInforme2(), val.getInforme3(), val.getNombreArchivo(),
                val.getNombreinstanciaproceso(), val.getObservacionDecano(), val.getObservacionEvaluador1(), val.getObservacionEvaluador2(),
                val.getObservacionEvaluador3(), val.getObservacionProfesor(), val.getPathArchivoAdjunto(), val.getResolucion(), val.getTema(),
                val.getTipo(), val.getResultadoResolucion(), val.getComentarioResolucion(), val.getResultadoEvaluacion(), val.getFkIdSecretaria());
    }

    public boolean modificarSolicitudaperturapostgrado(String estado, Timestamp fechacreacion, Timestamp fechamodificcion,
            int fkIdDecano, int fkIdEvaluador1, int fkIdEvaluador2, int fkIdEvaluador3, int fkIdProfesor, int fkParent,
            int idSolicitudApertura, String informe1, String informe2, String informe3, String nombreArchivo, String nombreinstanciaproceso,
            String observacionDecano, String observacionEvaluador1, String observacionEvaluador2, String observacionEvaluador3,
            String observacionProfesor, String pathArchivoAdjunto, String resolucion, String tema, String tipo, String resultadoResolucion,
            String comentarioResolucion, String resultadoEvaluacion, int fkIdSecretaria) throws SQLException {
        boolean exitoOperacion = true;

        PreparedStatement proc = con.prepareStatement(
                "call modificarSolicitudaperturapostgrado(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ");
        proc.setString(1, estado);
        proc.setTimestamp(2, fechacreacion);
        proc.setTimestamp(3, fechamodificcion);
        proc.setInt(4, fkIdDecano);
        proc.setInt(5, fkIdEvaluador1);
        proc.setInt(6, fkIdEvaluador2);
        proc.setInt(7, fkIdEvaluador3);
        proc.setInt(8, fkIdProfesor);
        proc.setInt(9, fkParent);
        proc.setInt(10, idSolicitudApertura);
        proc.setString(11, informe1);
        proc.setString(12, informe2);
        proc.setString(13, informe3);
        proc.setString(14, nombreArchivo);
        proc.setString(15, nombreinstanciaproceso);
        proc.setString(16, observacionDecano);
        proc.setString(17, observacionEvaluador1);
        proc.setString(18, observacionEvaluador2);
        proc.setString(19, observacionEvaluador3);
        proc.setString(20, observacionProfesor);
        proc.setString(21, pathArchivoAdjunto);
        proc.setString(22, resolucion);
        proc.setString(23, tema);
        proc.setString(24, tipo);
        proc.setString(25, resultadoResolucion);
        proc.setString(26, comentarioResolucion);
        proc.setString(27, resultadoEvaluacion);
        proc.setInt(28, fkIdSecretaria);
        proc.execute();
        return exitoOperacion;


    }

    public boolean eliminarSolicitudaperturapostgrado(int idSolicitudApertura) throws SQLException {
        boolean exitoOperacion = true;

        PreparedStatement proc = con.prepareStatement(
                "call eliminarSolicitudaperturapostgrado(?) ");
        proc.setInt(1, idSolicitudApertura);
        proc.execute();
        return exitoOperacion;


    }

    public boolean HLeliminarSolicitudaperturapostgrado(Solicitudaperturapostgrado val) throws SQLException {
        return eliminarSolicitudaperturapostgrado(val.getIdSolicitudApertura());
    }

    public void setConexion(Connection con) {
        this.con = con;
    }
}